Visualization and modeling software is extensively used in industry. Visualization generally refers to computer tools for viewing existing layouts, such as for viewing a representation of a network topology, an electrical wiring system or various other things that are designed. Visualization has general relevance in various applications, e.g., viewing a network topology is a scenario that is applicable to many different products. Modeling refers to computer tools used to design things, such as software, databases, integrated circuits, CAD/CAM applications and the like. Thus, in general, in visualization, a user looks at interconnected model elements placed on a viewing surface. In modeling, a user places the model elements on a work surface and connects them together in some manner. The semantics of connecting two or more model elements using other model elements is the fundamental operation in modeling and visualization.
However, existing visualization and modeling tools have a number of drawbacks, including that the developers of the tools have made them closed and proprietary. For example, the rules and semantics of connecting two or more model elements together are embedded in the modeling tool, e.g., an integrated circuit design tool will allow or disallow a connection between two elements based on some hard-coded knowledge about those elements. As a consequence, the tool that has the hard-coded rules and semantics, and the model elements, typically come from the same vendor, or at least come from sources having detailed knowledge of one another, resulting in a closed and proprietary tool in which independent software vendors (ISVs) or other third parties cannot participate. Moreover, existing tools are essentially not extensible, but rather require a newer version from the vendor each time updates (e.g., to modify the hard-coded rules or semantics) are required.
Further, existing modeling and visualization products use a static work surface that is essentially a display of a given area of a layout, along with static model elements. For example, when modeling, a user simply drops static modeling elements onto a static surface, or works with the tool to connect such elements together on the surface.
Moreover, because existing visualization and modeling tools are closed and proprietary, the file formats that store the designs are proprietary. As a result, another drawback with these existing tools is that they work with data in their own proprietary file formats, and thus there is no interoperability between various tools.